home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / ssbmv.z / ssbmv
Encoding:
Text File  |  2002-10-03  |  13.2 KB  |  331 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))                                                            SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSSSSSSSBBBBMMMMVVVV, DDDDSSSSBBBBMMMMVVVV - Multiplies a real vector by a real symmetric band matrix
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      Single precision
  13.  
  14.           Fortran:
  15.                CCCCAAAALLLLLLLL SSSSSSSSBBBBMMMMVVVV ((((_u_p_l_o,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _x,,,, _i_n_c_x,,,, _b_e_t_a,,,, _y,,,, _i_n_c_y))))
  16.  
  17.           C/C++:
  18.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  19.                vvvvooooiiiidddd ssssssssbbbbmmmmvvvv ((((cccchhhhaaaarrrr _u_p_l_o,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,, ffffllllooooaaaatttt *_a,,,, iiiinnnntttt
  20.                _l_d_a,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt _b_e_t_a,,,, ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y))));;;;
  21.  
  22.      Double precision
  23.  
  24.           Fortran:
  25.                CCCCAAAALLLLLLLL DDDDSSSSBBBBMMMMVVVV ((((_u_p_l_o,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _x,,,, _i_n_c_x,,,, _b_e_t_a,,,, _y,,,, _i_n_c_y))))
  26.  
  27.           C/C++:
  28.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  29.                vvvvooooiiiidddd ddddssssbbbbmmmmvvvv ((((cccchhhhaaaarrrr _u_p_l_o,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,, ddddoooouuuubbbblllleeee _a_l_p_h_a,,,, ddddoooouuuubbbblllleeee *_a,,,,
  30.                iiiinnnntttt _l_d_a,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee _b_e_t_a,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt
  31.                _i_n_c_y))));;;;
  32.  
  33. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  34.      These routines are part of the SCSL Scientific Library and can be loaded
  35.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  36.      directs the linker to use the multi-processor version of the library.
  37.  
  38.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  39.      4 bytes (32 bits). Another version of SCSL is available in which integers
  40.      are 8 bytes (64 bits).  This version allows the user access to larger
  41.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  42.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  43.      only one of the two versions; 4-byte integer and 8-byte integer library
  44.      calls cannot be mixed.
  45.  
  46.      The C and C++ prototypes shown above are appropriate for the 4-byte
  47.      integer version of SCSL. When using the 8-byte integer version, the
  48.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  49.      file should be included.
  50.  
  51. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  52.      These routines perform the following matrix-vector operation:
  53.  
  54.           _y <- _a_l_p_h_a _A_x +  _b_e_t_a _y
  55.  
  56.      where _a_l_p_h_a and _b_e_t_a are scalars, _x and _y are _n-element vectors, and _A is
  57.      an _n-by-_n symmetric band matrix.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))                                                            SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      See the NOTES section of this man page for information about the
  75.      interpretation of the data types described in the following arguments.
  76.  
  77.      This routine has the following arguments:
  78.  
  79.      _u_p_l_o      Character.  (input)
  80.                Specifies whether the upper or lower triangular part of band
  81.                matrix _A is supplied, as follows:
  82.  
  83.                _u_p_l_o= 'U' or 'u':  the upper triangular part of _A is being
  84.                supplied.
  85.                _u_p_l_o= 'L' or 'l':  the lower triangular part of _A is being
  86.                supplied.
  87.  
  88.      _n         Integer.  (input)
  89.                Specifies the order of matrix _A.  _n >= 0.
  90.  
  91.      _k         Integer.  (input)
  92.                Specifies the number of superdiagonals of matrix _A.  _k >= 0.
  93.  
  94.      _a_l_p_h_a     Scalar alpha.  (input)
  95.                SSSSSSSSBBBBMMMMVVVV: Single precision.
  96.                DDDDSSSSBBBBMMMMVVVV: Double precision.
  97.  
  98.      _a         Array of dimension (_l_d_a,_n).  (input)
  99.                SSSSSSSSBBBBMMMMVVVV: Single precision array.
  100.                DDDDSSSSBBBBMMMMVVVV: Double precision array.
  101.  
  102.                Before entry with _u_p_l_o = 'U' or 'u', the leading (_k+1)-by-_n
  103.                part of array _a must contain the upper triangular band part of
  104.                the symmetric matrix, supplied column-by-column, with the
  105.                leading diagonal of the matrix in row (_k+1) of the array, the
  106.                first superdiagonal starting at position 2 in row _k, and so on.
  107.                The top left _k-by-_k triangle of array _a is not referenced.
  108.  
  109.                Before entry with _u_p_l_o = 'L' or 'l', the leading (_k+1)-by-_n
  110.                part of array _a must contain the lower triangular band part of
  111.                the symmetric matrix, supplied column-by-column, with the
  112.                leading diagonal of the matrix in row 1 of the array, the first
  113.                subdiagonal starting at position 1 in row 2, and so on.  The
  114.                bottom right _k-by-_k triangle of array _a is not referenced.
  115.  
  116.                See the NOTES section for examples of Fortran code that
  117.                transfer upper and lower parts of symmetric band matrices from
  118.                conventional full matrix storage to band storage.
  119.  
  120.      _l_d_a       Integer.  (input)
  121.                Specifies the first dimension of _a as declared in the calling
  122.                program.
  123.                _l_d_a >= (_k+1).
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))                                                            SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      _x         Real array of dimension 1+(_n-1) * |_i_n_c_x|.  (input)
  141.                SSSSSSSSBBBBMMMMVVVV: Single precision array.
  142.                DDDDSSSSBBBBMMMMVVVV: Double precision array.
  143.                Contains vector _x.
  144.  
  145.      _i_n_c_x      Integer.  (input)
  146.                Specifies the increment for the elements of _x.  _i_n_c_x must not
  147.                be 0.
  148.  
  149.      _b_e_t_a      Scalar beta.  (input)
  150.                SSSSSSSSBBBBMMMMVVVV: Single precision.
  151.                DDDDSSSSBBBBMMMMVVVV: Double precision.
  152.  
  153.      _y         Array of dimension 1+(_n-1) * |_i_n_c_y|.  (input and output)
  154.                SSSSSSSSBBBBMMMMVVVV: Single precision array.
  155.                DDDDSSSSBBBBMMMMVVVV: Double precision array.
  156.                Contains vector _y.  On exit, the updated vector overwrites
  157.                array _y.
  158.  
  159.      _i_n_c_y      Integer.  (input)
  160.                Specifies the increment for the elements of _y.  _i_n_c_y must not
  161.                be 0.
  162.  
  163. NNNNOOOOTTTTEEEESSSS
  164.      The following program segment transfers the upper triangular part of a
  165.      symmetric band matrix from conventional full matrix storage to band
  166.      storage:
  167.  
  168.               DO 20, J = 1, N
  169.                  M = K + 1 - J
  170.                  DO 10, I = MAX( 1, J - K ), J
  171.                     A( M + I, J ) = MATRIX( I, J )
  172.           10    CONTINUE
  173.           20 CONTINUE
  174.  
  175.  
  176.      The following program segment transfers the lower triangular part of a
  177.      symmetric band matrix from conventional full matrix storage to band
  178.      storage:
  179.  
  180.               DO 20, J = 1, N
  181.                  M = 1 - J
  182.                  DO 10, I = J, MIN( N, J + K )
  183.                     A( M + I, J ) = MATRIX( I, J )
  184.           10    CONTINUE
  185.           20 CONTINUE
  186.  
  187.  
  188.      SSSSSSSSBBBBMMMMVVVV/DDDDSSSSBBBBMMMMVVVV is a Level 2 Basic Linear Algebra Subprogram (Level 2 BLAS).
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))                                                            SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))
  203.  
  204.  
  205.  
  206.      When working backward (_i_n_c_x < 0 or _i_n_c_y < 0), this routine starts at the
  207.      end of the vector and moves backward, as follows:
  208.  
  209.           _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)) , ..., _x(1)
  210.  
  211.           _y(1-_i_n_c_y * (_n-1)), _y(1-_i_n_c_y * (_n-2)) , ..., _y(1)
  212.  
  213.  
  214.    DDDDaaaattttaaaa TTTTyyyyppppeeeessss
  215.      The following data types are described in this documentation:
  216.  
  217.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                     DDDDaaaattttaaaa ttttyyyyppppeeee
  218.  
  219.      Fortran:
  220.  
  221.           Array dimensioned _n           xxxx((((nnnn))))
  222.  
  223.           Array of dimensions (_m,_n)     xxxx((((mmmm,,,,nnnn))))
  224.  
  225.           Character                     CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR
  226.  
  227.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  228.  
  229.           Single precision              RRRREEEEAAAALLLL
  230.  
  231.           Double precision              DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN
  232.  
  233.      C/C++:
  234.  
  235.           Array dimensioned _n           xxxx[[[[_n]]]]
  236.  
  237.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  238.  
  239.           Character                     cccchhhhaaaarrrr
  240.  
  241.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  242.  
  243.           Single precision              ffffllllooooaaaatttt
  244.  
  245.           Double precision              ddddoooouuuubbbblllleeee
  246.  
  247.      Note that you can explicitly declare multidimensional C/C++ arrays
  248.      provided that the array dimensions are swapped with respect to the
  249.      Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran).
  250.      To avoid a compiler type mismatch error in C++ (or a compiler warning
  251.      message in C), however, the array should be cast to a pointer of the
  252.      appropriate type when passed as an argument to a SCSL routine.
  253.  
  254. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  255.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222(3S)
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))                                                            SSSSSSSSBBBBMMMMVVVV((((3333SSSS))))
  269.  
  270.  
  271.  
  272.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  273.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  274.      Linear Algebra Subprograms Technical Forum.
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.                                                                         PPPPaaaaggggeeee 5555
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.